Verification of Unloadable C Modules—Status Report
نویسندگان
چکیده
C programs may dynamically load and unload modules. For example, some operating system kernels support dynamic loading and unloading of device drivers. This causes specific difficulties in the verification of such programs and modules; in particular, it must be verified that no functions or global variables from the module are used after the module is unloaded. We propose a separation-logic-based approach for the verification of such programs and modules. We propose proof rules for loading and unloading modules, and for dealing with pointers to functions in unloadable modules, that ensure soundness while imposing minimal verification overhead. We offer a formalization and we report on verifying a small kernel-like program using a prototype implementation of the approach in our verifier, VeriFast. To the best of our knowledge, ours is the first approach for sound modular verification of unloadable modules. Verification of Unloadable C Modules Status Report Bart Jacobs, Jan Smans, and Frank Piessens Department of Computer Science, Katholieke Universiteit Leuven, Belgium {bart.jacobs,jan.smans,frank.piessens}@cs.kuleuven.be Abstract. C programs may dynamically load and unload modules. For example, some operating system kernels support dynamic loading and unloading of device drivers. This causes specific difficulties in the verification of such programs and modules; in particular, it must be verified that no functions or global variables from the module are used after the module is unloaded. We propose a separation-logic-based approach for the verification of such programs and modules. We propose proof rules for loading and unloading modules, and for dealing with pointers to functions in unloadable modules, that ensure soundness while imposing minimal verification overhead. We offer a formalization and we report on verifying a small kernellike program using a prototype implementation of the approach in our verifier, VeriFast. To the best of our knowledge, ours is the first approach for sound modular verification of unloadable modules. C programs may dynamically load and unload modules. For example, some operating system kernels support dynamic loading and unloading of device drivers. This causes specific difficulties in the verification of such programs and modules; in particular, it must be verified that no functions or global variables from the module are used after the module is unloaded. We propose a separation-logic-based approach for the verification of such programs and modules. We propose proof rules for loading and unloading modules, and for dealing with pointers to functions in unloadable modules, that ensure soundness while imposing minimal verification overhead. We offer a formalization and we report on verifying a small kernellike program using a prototype implementation of the approach in our verifier, VeriFast. To the best of our knowledge, ours is the first approach for sound modular verification of unloadable modules.
منابع مشابه
Verification of Unloadable C Modules ( Extended
Programs in unsafe languages, like C and C++, may dynamically load and unload modules. For example, some operating system kernels support dynamic loading and unloading of device drivers. This causes specific difficulties in the verification of such programs and modules; in particular, it must be verified that no functions or global variables from the module are used after the module is unloaded...
متن کاملVerification of Unloadable C Modules—Soundness Proof
C programs may dynamically load and unload modules. For example, some operating system kernels support dynamic loading and unloading of device drivers. This causes specific difficulties in the verification of such programs and modules; in particular, it must be verified that no functions or global variables from the module are used after the module is unloaded. We propose a separation-logic-bas...
متن کاملVerification of Unloadable Modules
Programs in unsafe languages, like C and C++, may dynamically load and unload modules. For example, some operating system kernels support dynamic loading and unloading of device drivers. This causes specific difficulties in the verification of such programs and modules; in particular, it must be verified that no functions or global variables from the module are used after the module is unloaded...
متن کاملA prototype system for unconstrained face verification based on statistical learning
This paper discusses the video processing modules of a prototype face verification system. The main modules (face detection, registration, and verification) are all based on a feature selection plus classification pipeline that implements recently proposed statistical learning algorithms. All these modules are running on the prototype since January 2008, performing face verification in real tim...
متن کامل*-frames in Hilbert modules over pro-C*-algebras
In this paper, by using the sequence of multipliers, we introduce frames with algebraic bounds in Hilbert pro-$ C^* $-modules. We investigate the relations between frames and $ ast $-frames. Some properties of $ ast $-frames in Hilbert pro-$ C^* $-modules are studied. Also, we show that there exist two differences between $ ast $-frames in Hilbert pro-$ C^* $-modules and Hilbert $ ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2009